#include <gtest/gtest.h>

// int func(int a,int b)
// {
//     return a+b;
// }

// //TEST(测试名称,测试用例名称) 
// //一次测试可以有多个测试用例,只有所有的测试用例均通过这次测试才算通过
// //比如下面写的是一个正常的测试，测试用例1
// TEST(normal_test,test1)
// {
//     //函数使用示例               //函数描述——如果返回false则会直接终止这次测试用例
//     ASSERT_EQ(func(1,2),3);     //第一个参数和第二参数相等返回true
//     ASSERT_NE(func(2,3),7);     //第一个参数和第二参数不相等返回true
//     ASSERT_GT(func(2,4),0);     //第一个参数比第二个参数大返回true
//     ASSERT_LT(func(4,5),9);    //第一个参数比第二参数小返回true
//     //诸如这样的的函数还有ASSERT_GE、ASSERT_LE等，分别表示大于等于返回true、小于等于返回true
//     EXPECT_LE(func(4,9),1);
// }

// //正常测试，测试用例2
// TEST(normal_test,test2)
// {
//     ASSERT_GT(func(2,4),0);     //第一个参数比第二个参数大返回true
//     ASSERT_LT(func(4,5),2);    //第一个参数比第二参数小返回true
// }

// TEST(normal,test1)
// {
//     EXPECT_EQ(func(1,2),4);
//     std::cout<<"EXPECT_EQ失败后没有退出测试用例"<<std::endl;
//     ASSERT_EQ(func(1,2),4);
//     std::cout<<"ASSERT_EQ失败后没有退出测试用例?"<<std::endl;
// }


#include <gtest/gtest.h>

int func(int a,int b)
{
    return a+b;
}

TEST(normal_test,test1)
{
    ASSERT_EQ(func(1,2),3);     //第一个参数和第二参数相等返回true
    ASSERT_NE(func(2,3),7);     //第一个参数和第二参数不相等返回true
    ASSERT_GT(func(2,4),0);     //第一个参数比第二个参数大返回true
    ASSERT_LT(func(4,5),10);    //第一个参数比第二参数小返回true  
    EXPECT_LE(func(4,9),1);
}

TEST(normal_test,test2)
{
    ASSERT_GT(func(2,4),0);     //第一个参数比第二个参数大返回true
    ASSERT_LT(func(4,5),10);    //第一个参数比第二参数小返回true
}

int main()
{
    testing::InitGoogleTest();
    int n=RUN_ALL_TESTS();
    
    return 0;
}